Web 3D image display system

ABSTRACT

A Web-based 3D-image display system that downloads 3D-image files from a Web server and smoothly displays 3D -images on a Web browser. The Web-based 3D-image display system is provided with a Web server storing compressed 3D files that have been edited and created based on 3D-scene information extracted from a VRML file or the like, and a 3DA applet for displaying 3D scenes; and a Web browser for displaying the 3D scene. The Web browser requests and downloads the 3D applet from the Web server and requests and downloads the compressed 3D file from the Web server by executing the 3D applet. After downloading and receiving all information, the Web browser continuously displays an interactive 3D -scene by executing, independently of the Web server, real-time 3D-rendering and 3D-motion algorithms using the 3D applet.

DETAILED DESCRIPTION OF THE INVENTION

1. Field of the Invention

The present invention relates to a Web-based, bi-directional real-time,three-dimensional (3D) image-display system, and particularly to such asystem that reduces the file size of 3D-image files downloaded from aWeb server to a Web browser, enabling a client-user to transmit anddisplay 3D images over an ordinary communication line for Internetaccess, without requiring that a special 3D-viewer plug-in be installedin the Web browser and without requiring a broadband communicationssystem.

2. Description of the Related Art

A VRML browser well known in the art is one example of a conventionalWeb-based 3D-image display system. VRML (Virtual Reality ModelingLanguage) is a language for describing three-dimensional graphicscreated on the Web in an ordinary text file. A VRML browser is a Webbrowser capable of directly reading and displaying such a VRML file. TheVRML browser can display 3D images using a special 3D-viewer plug-in,such as Live3D (brand name).

However, since the VRML browser requires the installation of a special3D-viewer plug-in, the client-user must download the plug-in from aWebsite on which the plug-in is offered. The client-user also mustperform numerous troublesome operations in order to create files for 3Dscenes to achieve interactivity in the VRML browser.

A tool for reducing these troublesome operations has been disclosed inPCT Publication No. WO98/33150. This tool links VRML with the JAVAlanguage in order to implement an interactive 3D world.

However, while PCT Publication No. WO98/33150 provides a developmenttool for creating an interactive 3D world, the tool requires the use ofa VRML browser. The VRML browser takes a considerably long time todownload 3D images and the like from the Web server, as the images aredownloaded in an uncompressed form. Even with the use of a broadbandcommunications system, it may be difficult to achieve a transmissionspeed with this tool that will satisfy the client-user, placinglimitations on how 3D images obtained via the Internet are displayed.

DISCLOSURE OF THE INVENTION

In view of the foregoing, it is an object of the present invention toprovide a Web-based 3D-image display system capable of downloading 3Dimage files from a Web server at a high speed and displaying interactive3D images on a common Web browser installed on a client computer orother device, without the need for installing a special 3D-viewerplug-in in the Web browser.

These objects and others will be attained by a Web-based 3D-imagedisplay system that downloads a 3D-image file from a Web server anddisplays a 3D image on a Web browser. The Web-based 3D-image displaysystem comprises a Web server storing compressed 3D files that have beenedited and created based on 3D-scene information extracted from a VRMLfile or other standard descriptive language for describing Web-based 3Dgraphics, and a 3D applet for displaying 3D scenes by executingreal-time 3D-rendering and 3D-motion algorithms; and a Web browser fordownloading the compressed 3D-image file and the 3D applet from the Webserver and displaying a 3D image based thereon. The Web browsercomprises 3D applet requesting means for requesting and downloading the3D applet from the Web server through communications with the same;compressed 3D file requesting means for requesting and downloading thecompressed 3D file from the Web server by executing the 3D applet;optional information requesting means for requesting and downloadingoptional information from the Web server, including such optionalinformation as an image of a scene's background, a shape texture, and anapplet toolbar; 3D applet executing means for executing the 3D appletindependently of the Web server after downloading the 3D applet andreceiving all necessary information; 3D scene displaying means forcontinuously displaying 3D scenes by executing independently of the Webserver real-time 3D-rendering and 3D-motion algorithms using the 3Dapplet executing means; and interactive display processing means forenabling client-users to interact with the displayed 3D scene.

According to another aspect of the present invention, a Web-based3D-image display system is provided to load a 3D-image file stored in astorage device and display a 3D image on a Web browser. The Web-based3D-image display system comprises Web-based 3D file creating means forgenerating a 3D object by using a 3D modeling software program andconverting the 3D object or an entire 3D scene into a VRML file or otherstandard descriptive language for describing Web-based 3D graphics; 3Dscene customizing means for customizing a 3D scene based on theWeb-based 3D graphics file created by the Web-based 3D file creatingmeans and applying information regarding how to display the 3D scene ona Web browser; compressed 3D file generating means for creating a 3Dfile having a transmission size made smaller by compressing all of the3D-scene information; 3D applet generating means for generating a 3Dapplet that executes real-time 3D rendering and motion algorithms on theWeb browser based on 3D scene information in the compressed 3D file inorder to display a 3D scene; Web page creating means for creating a Webpage of an HTML document comprising an applet tag for calling a 3Dapplet; 3D information storing means for storing in a storage device 3Dinformation required for displaying a 3D scene, the 3D informationcomprising the compressed 3D file, the 3D applet, the Web page, objecttexture files, and an optional toolbar file; 3D applet executing meansfor requesting a 3D applet stored in the storage device, loading the 3Dinformation file stored in the storage device, and executing the 3Dapplet; and interactive display processing means for displaying auser-interactive 3D scene achieved when the 3D applet executing meansexecutes the 3D applet.

According to another aspect of the present invention, the interactivedisplay processing means enables the Web browser to edit and process a3D scene independently of the Web server by transferring client-userevents input by a keyboard, mouse, or the like to the 3D applet formoving and changing a downloaded toolbar and scene objects.

According to another aspect of the present invention, the Web-based3D-image display system further comprises licensing informationprocessing means for comparing the domain of the Web server itself withdomain data embedded in the 3D applet when the Web browser downloads the3D applet from the Web server and displays a 3D scene.

According to another aspect of the present invention, the licensinginformation processing means compares the two domains and displays alicense mark and warning in the drawing area of the 3D scene when thedomains do not match.

According to another aspect of the present invention, the 3D appletcomprises a plurality of applet classes including at least such sceneelement classes as shape, coordinate transform, light, and camera; suchshader classes as wire frame, flat shading, and Gouraud shading; andvarious core classes for displaying 3D images; whereby the classesnecessary for displaying the 3D scene are selected and saved as a singlecompressed file.

According to another aspect of the present invention, the 3D appletcomprises an original JavaScript interface capable of achievinguser-interactivity through the JavaScript code on a Web page.

According to another aspect of the present invention, the JavaScriptinterface includes at least information regarding objects, shapes,coordinates, cameras, animation, image displaying, and user interface inorder to display interactive 3D images.

According to another aspect of the present invention, the compressed 3Dfile is stored in a single binary file and comprises 3D sceneinformation called from an applet, including at least informationregarding shapes, coordinate transform, lights, and cameras.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 shows the transmission process performed by the Web-based3D-image display system according to a first embodiment of the presentinvention;

FIG. 2 shows the operations performed by a Web-based 3D-image displaysystem according to a second embodiment;

FIG. 3 shows the operations performed by the Web-based 3D-image displaysystem when a security function is added to the operations of FIG. 2;

FIG. 4 shows the hierarchical structure of (a) scene elements, (b)shader classes, and (c) core classes in an applet;

FIG. 5 shows sample HTML source code for an applet and JavaScript;

FIG. 6 shows the types of parameters in an applet tag;

FIG. 7 shows the contents of JavaScript API;

FIG. 8 shows the compressed file of a 3D scene;

FIG. 9 shows a configuration for managing licensing information; and

FIG. 10 shows the general construction of a Web-based 3D-image displaysystem according to a third embodiment.

BEST MODE FOR CARRYING OUT THE INVENTION

A Web-based 3D-image display system according to preferred embodimentsof the present invention will be described while referring to theaccompanying drawings. FIG. 1 shows the transmission process performedby the Web-based 3D-image display system according to a first embodimentof the present invention.

As shown in FIG. 1, the Web-based 3D-image display system includes astandard Web server 6 (not a special 3D server) and an ordinary Webbrowser 2 capable of displaying 3D images without a special 3D-viewerplug-in.

The Web server 6 and Web browser 2 are each installed and executed on acommercial personal computer or workstation comprising an ordinarycomputer system well known in the art. The personal computer orworkstation is provided with a central processing unit (CPU); storagedevices, such as RAM memory and a hard disk; a display device fordisplaying images, text, and the like; an input device, such as akeyboard, mouse, or the like; input/output devices connected to acommunication line; and the like. As these components are well known inthe art, a description has been omitted here.

The Web server 6 has both a 3DA file that is a compressed 3D-image fileand a 3DA applet that is used for controlling the attributes of the 3DAfile. Here, the “A” in “3DA” stands for “anywhere,” signifying“something ordinary seen anywhere” as opposed to “something special seenonly under certain conditions.” Therefore, hereinafter, these compressed3D files and 3D applets will be referred to as “3DA files” and “3DAapplets,” respectively.

Compressed 3DA files are created as original files having data necessaryfor a 3DA applet to display an interactive 3D scene. The 3DA files arecreated using files of the VRML description format (Web-based 3D files)as an input tool and using the VRML file descriptions of 3D worlds and3D shapes.

When creating a 3DA file, a VRML file (which is not a compressed file,but an ordinary text file) is used only for importing 3D-sceneinformation, because a VRML file does not contain any information thatis necessary for displaying a 3D scene but contains some informationthat is not necessary for that purpose. In the present invention, a 3DAfile stores only the information that is necessary for using a 3DAapplet to display a 3D scene. Such a 3DA file or 3DA applet iscompressed by the ordinary ZIP compression method and is stored in theWeb server 6.

A 3DA applet is a JAVA mini-program that, when downloaded in a Web page,executes real-time 3D-rendering and 3D-motion algorithms. When a Webpage containing a 3DA applet tag is viewed from a Web browser 2, the 3DAapplet is automatically downloaded according to the conditions of theWeb browser 2, provided that JAVA is enabled in the Web browser 2. Oncedownloaded, the 3DA applet is executed by the Web browser 2. The 3DAapplet then requests from the Web server 6 all of the scene informationin the aforementioned 3DA file, and graphic algorithms are used torender 3D scenes and to cause 3D objects to behave in specified ways.This means that once the Web browser 2 has received the data of allscenes as a result of the functioning of the 3DA applet, there is noneed for further communication between the Web browser 2 and the Webserver 6.

Hence, the Web browser 2 performs all graphics movements and interactiveresponses, eliminating the need to use a broadband communications linewhen transmitting 3D-image data. This is made possible by (1) minimizingthe sizes (to approximately 100 KB or less) of both the 3DA files andthe 3DA applets; (2) compressing a 3DA applet into a JAVA class filethat is automatically opened by the Web browser 2; and (3) compressingthe scene information in the 3DA file to minimize the amount ofinformation that needs to be transmitted. An average animation filegreatly exceeds 1 MB in size, but if that data is converted into a 3DAfile, it will be only about 100 KB (less than 1/10 of the originalsize).

Next, the real-time 3D-image displaying process of this system will bedescribed while referring to FIG. 1. FIG. 1 shows the communicationprocedures, or interaction, between the Web browser 2 of the clientcomputer and the Web server 6 via HTTP communication. In other words,FIG. 1 represents the browser-server communication before and afterexecution of a 3DA applet.

After the initialization phase is completed in S100, the 3DA processingprogram is executed in S101. In S102, HTTP communications is initiatedbetween the Web server 6 and the Web browser 2. After a Web pagecontaining a 3DA applet is loaded in the Web server 6, the client-user'sWeb browser 2 requests to download the 3DA applet in S103. In responseto that request, the Web server 6 sends the 3DA applet to the Webbrowser 2 in S104. When the 3DA applet is executed in the Web browser 2,the Web browser 2 then requests to download a 3DA file in S105.

In response to that request, the Web server 6 sends the 3DA file to theWeb browser 2 in S106. As an option, the Web browser 2 can requestfurther information from the server in S107, such as a scene-backgroundimage, a shape texture, and an applet toolbar. The scene-backgroundimage is displayed as a background behind the 3D scene; the shapetexture is used for changing the appearance and feel of an object'ssurface; and the applet toolbar is used for moving, rotating, enlarging,and reducing an object, rendering a scene, and selecting the type ofrendering-functions that are accessed via the tool buttons and areequivalent to the functions of an editing-toolbar menu. In response tothe respective optional request, the Web server 6 sends a backgroundimage, a shape texture, or an applet toolbar to the Web browser 2 inS108.

As another option, the Web browser 2 can request an alternate 3DA fileand/or a shape or shapes from other 3DA files. The download response tothese requests is performed in S109 by a JavaScript code described in anHTML file and executed by the Web browser 2.

Once the 3DA applet, the 3DA file, and the optional items have beendownloaded, the Web browser 2 extracts the required applet classes(described later) from the 3DA applet and executes the 3DA applet, bywhich real-time rendering and motion algorithms are executed (S110).This process enables the 3DA applet to display a 3D scene withinteractivity (S111). By manipulating an applet toolbar or otherinteractive-display processing tool, the client-user of the Web browser2 can create rasterized 3D images and interactively edit 3D scenes usingbackground images, shape textures, and the like. Thus, when the 3DA fileand other data needed to display a 3D scene have been downloaded, all ofthe information thereof has been transferred to the Web browser 2,enabling the 3DA applet to continue execution on the Web browser 2without needing to be in communication with the Web server 6 (S112).

Next, the operations of a Web-based 3D-image display system according toa second embodiment of the present invention will be described, whilereferring to FIG. 2. While the first embodiment is configured based oncommunications between a Web server and Web browser, the system of thesecond embodiment, shown in FIG. 2, includes a developing tool called a3DA designer application for creating 3DA files and 3DA applets. Thisdeveloping tool is installed on a computer. The 3DA files and 3DAapplets are called from a storage device mounted in the same computerand executed by a Web browser.

The Web browser 2 and 3DA designer application (not shown) are installedand executed on a commercial personal computer or workstation comprisinga central processing unit (CPU); storage devices, such as RAM memory anda hard disk; a display device for displaying images, text, and the like;an input device, such as a keyboard, mouse, or the like; otherinput/output devices; and the like. Accordingly, a description of thesecomponents and their drawings have been omitted here.

Further, the second embodiment shows a 3D displaying method thatinvolves creating a 3D object by use of a third-party modeling softwarepackage such as “3ds max” (brand name), converting the 3D object into aVRML file, and generating a 3DA file. The modeling software to be usedin this invention is not limited to 3ds max, but other 3D software canalso be used for creating 3D objects.

Next, the operations of the 3DA designers and the 3D displaying processperformed by the Web browser 2 will be described, while referring toFIG. 2. First, a 3D object is created by use of a third-party modelingprogram (S200). For example, typical procedures performed with 3ds maxinclude modifying the motion, camera, lighting, and material of a 3Dobject.

A 3D object created using a third-party modeling program or an entirescene from such a 3D object is exported in VRML format (S201). This VRMLfile is imported into the 3DA designer (S202), where the 3D scene iscustomized as required (S203), and information describing how to displaythe 3D scene on a Web page (information that corresponds to the 3DAapplet) is provided (S204). Information imported into the 3DA designerfrom the VRML file includes object data, such as data for a polygon'svertexes, surface, and color, and image data applied to each surface;scene data, such as the camera and lighting; and animation data for eachobject. The 3D scene can be customized by setting object data, such asshading; scene data, such as the positions of cameras and lights;animation data for editing the animation of each object, assigningnames, and the like; display data, such as background images, imagesize, and other scene attributes; and the like.

After all 3D data required to display the scene is converted to a binaryformat, all the 3D scene information is compressed using ZIP compressionor the like and saved in a storage device (not shown) as a singlecompressed 3DA file (S205). The 3DA designer creates a toolbar file fordisplaying the interactive 3D scene on the Web browser 2 andautomatically generates a new Web page (HTML document) that includes a3DA applet tag for calling the 3DA applet (S206). JavaScript codedescribed later that accesses the 3DA applet can be added to the HTMLdocument to modify the 3DA scene dynamically for enhanced operations andinteractivity (S207, S208).

While interactive operations are possible with the JAVA applet alone,JavaScript code can be used to modify or redefine nearly all attributesof objects, scene animation, and display data and to describe dataassociated with HTML control. Thus, it is possible to create Web pagesthat implement more complex interactive operations.

All files necessary for displaying a 3D scene created according to theaforementioned method are saved to the storage device (S209). Thesefiles include a Web page (HTML document) having a 3DA applet tag, anoptional toolbar file, texture images, a 3DA scene file, and the 3DAapplet itself The 3DA applet calls the various 3D scene data that wasset during the customization step and assembles all applet class filesrequired for processing the applet. The data is compressed by standardZIP compression and saved in the storage device as a single 3DA appletfile.

Next, the Web browser 2 calls the HTML document that includes the 3DAapplet tag and is stored in the storage device, and loads and executesthe 3DA applet (S210). Once execution of the 3DA applet begins, aninteractive 3D scene is displayed, and the 3D scene displaying processcontinues (S211).

Next, the structure of a 3DA applet according to the present inventionwill be described in more detail, while referring to FIG. 4. As shown inFIG. 4, a 3DA applet displays scene data configured by the rendering andmovement of 3D objects. The 3D applet includes core classes that control3D scenes. All scene data is always stored in a CScene 36 object. TheCScene 36 object has a list of all scene elements inherited from theIdObject 30 base class. Rendering of a 3D scene is executed according tothe Cscene 36 rendering method.

All client-user events, such as inputting via a keyboard or mouse, arerouted to a CController 59 class. For example, if a client-user eventoccurs when the 3DA applet is already executing, the event-relatedinformation is transferred to the 3DA applet, and the CController 59class changes the attribute of the IdObject 30 that is selected at thattime. If the client-user moves the mouse when the mouse-movement'scommand function is set to “rotation,” for example, the orientationattribute of the currently selected CTransform 32 class is changed.

The CShape 31 class represents actual 3D objects in the 3D scene. Theattributes of the CShape 31 class contain all the information necessaryfor depicting 3D objects on the client-user's computer screen. All ofthe CShape 31 classes contain references to the neighboring CTransform32 classes.

The CTransform 32 class has information concerning the location of theCShape 31 class used for locating the CShape 31 class in the 3D scene.Rendering is performed based on the information concerning each objectand its location in the scene, but the I3dObject 40 class is used torender the class when depicting shapes. All the classes that implementthe I3dObject 40 class interface (such as a CTextureMap 45 class thatrepresents the appearance and feel of the material's surface and thelike) can be drawn on the screen of the client-user's computer.

A Clipper 57 class is used, together with the shader class (theI3dObject 40 class), to raster-display (rasterize) a certain shape onthe screen of the client-user's computer. Information relating to toolbuttons in the toolbar is stored in an applet module. The toolbarinformation can be regarded as constituting normal menu options, such asselecting an object, moving an object, rotating an object,enlarging/reducing an object, rendering a scene, and selecting the typeof rendering.

Next, the construction of the applet class in FIG. 4 will be describedin separate sections (a)-(c).

The IdObject 30 in section (a) of FIG. 4 represents a scene element. Allscene elements have a unique ID, which is a common feature representedby the IdObject 30 class. Accordingly, all scene elements inherit fromthis class. (Inheritance is a feature of object-oriented programminglanguages, of which JAVA is one.) A 3d scene is represented by ahierarchy of elements. The unique ID is used during the loading of sceneinformation from the 3DA file to build this hierarchy. The hierarchy isconstructed of the CTransform 32 objects (in this case, object issynonymous with class). Each CTransform 32 object might contain anynumber of scene elements of different types, including lights (CLight 34objects), shapes (CShape 31 objects), other CTransform 32 objects, andthe like. There always exists a root transform that contains all thescene elements. This special transform is called the scene transform andis represented by the single CScene 36 object included in the mainapplet class (Applet3da 56). The hierarchal structure of the informationis essential for the 3D presentation of the scene. Each CTransform 32object represents a location in the 3D world. All stored elements aredisplayed and moved relative to this location through coordinateconversion.

Next, each scene element class in FIG. 4( a) will be described.

The Interpolator 33 contains information about interpolation between aset of a values in a scene element. An interpolator class containsmethods for sliding between these values; thus, gradually changing aproperty of a scene element. The scene elements that containinterpolators are Cshape 31 and Ctransform 32. Shapes use interpolatorsto perform morphing. Transforms use interpolators to perform movementand rotation. This is how the applet engine performs 3D animations.During the playing of an animation, interpolators “slide” between a setof values to modify the properties of scene elements (for example, theposition property of a transform to perform movement or the coordinatesof a shape to perform shape morphing). Whenever an animation is playingin the scene, a list of active interpolators contained in the CScene 36object is advanced each frame to perform the changes in the scene—hence,the animation effect. Interpolators are aware of the passage of time andknow how much time is required to advance their values. This is how ananimation length (animation time) is controlled.

CLight 34 is used to define lighting of scene shapes. A light containscolor properties that define the color and brightness of the light.There are two kinds of lights: Omni lights, which contain positioninformation, and Spot lights, which contain direction information.Lights are positioned in a CTransform 32 object. When moving a transformthat contains a light element, the light is also moved, causing changesin how scene shapes are lit. When a CShape 31 object is rendered on ascreen using a shader object (I3dObject 40 class), the shader objectchecks the position, direction, and color of all scene lights to renderthe shape with the correct lighting.

A camera scene element, CCamera 35, defines a viewpoint. Each CCamera 35object contains position and direction information. This informationcombined with the position of the transform in which the camera residesindicates a viewpoint from which the 3D scene can be rendered andviewed. The CController 59 object contains a reference to the activecamera, which is the camera currently being used as the viewpoint to thescene. Each time the scene image is rendered, all 3D information istransformed to the coordinate space of the active camera, such that theactive camera is at the world's origin (0,0,0). The CScene 36 objectperforms this transformation. Subsequently, the transformed scene isrendered, revealing how the 3D scene looks from the camera's point ofview.

All classes in section (b) of FIG. 4 are called shaders; that is,objects (applet classes) related to the shading of 3D objects. Allshaders have common features represented in the I3dObject 40 class.Hence, all shaders inherit from this class. A shader is owned by aCShape 31 object and is responsible for performing the rasterization(creation of a 2D bitmap image) of the CShape 31 by which it is owned.Each shader will render its shape differently. A shader will perform theactions needed to rasterize its shape taking into account scene lights,shape color information, shape texture information, and the like. Eachshader might use this information in a different way or might disregardsome of this information. A shape's shader is defined by its “shadetype” property defined by the scene creator. Some shaders might producetextured shapes while other might produce smoothly shaded shapes, forinstance.

Next, each shader class in FIG. 4( b) will be described.

Unlike other shaders, a CWire 41 class does not render the shape byfilling the polygons comprising the shape. This shader draws the wireframe of the shape. In other words, the shader draws lines connectingall points of the polygons, creating a wire frame of the shape. Thecolor information of the CShape 31 owning this shader is used as thecolor for the wire frame.

A CFlat 42 class renders a flat shaded shape. Flat shading is analgorithm in which each polygon of the shape receives a constant colordependant on the color of the shape and the lights in the scene.

A CGouraud 43 class renders a Gouraud shaded shape. Gouraud shading isan algorithm in which the color at the three points of each polygon of ashape is calculated according to the color of the shape and the lightsin the scene. Subsequently, these colors are linearly interpolatedacross the polygon, creating smooth shading over the shape.

A CEnvironment 44 class renders a texture-mapped shape. Thetexture-mapping algorithm generates mapping information according to theorientation of the CTransform 32 object containing the CShape 31 beingrendered. The algorithm used by this shader is identical to thealgorithm used by the CTextureMap 45 shader, except for the source ofthe mapping information. Since mapping information here is dependent onthe orientation of the shape, a rotating shape appears to be reflectingthe environment or a light source. This illusion can be used to achieverealistic looking reflection and lighting using a simple texture-mappingalgorithm.

The CTextureMap 45 class renders a texture-mapped shape. Thetexture-mapping algorithm uses mapping information stored in the CShape31 object owning the shader object to map a texture bitmap onto theshape. This process causes a certain texture or an image to appear drawnon the rendered shape.

A CTextureGur 46 performs both Gouraud shading (like CGouraud 43) andtexture mapping (like CTextureMap 45), while rendering the polygons of ashape. This results in a texture-mapped, smoothly shaded object.

A CTextureEnv 47 performs two texture-mapping operations with twodifferent texture images and a different set of mapping coordinates andsubsequently combines the images using a blending algorithm. Performingthese two texture-mapping operations is equivalent to performing theCTextureMap 45 rendering algorithm and combining the result with that ofthe CEnvironment 44 rendering algorithm. This shader is used to give ashape both a texture image and a reflection/lighting effect.

Section (c) of FIG. 4 includes other core classes used by the 3DAdesigner JAVA engine. These classes contain information needed by the 3Dengine and perform functions related to this information. For example,the Clipper 57 aids in rasterization; a MyPixelGrabber 51 object aids inloading image files; and CController 59 is responsible for changingscene information according to client-user input, to name a few.

Next, each core class in FIG. 4( c) will be described.

A YOE3types 50 class, which must be considered a core class, simplycontains constants used by the CScene 36 class, but executes nofunctions and stores no data. When a 3DA scene file is loaded, thestructure of the scene file is such that it contains nodes representingscene elements or general scene information. Each node can contain subnodes and data fields. The different node types and data field types areidentified by an ID number preceding them in the file. This classcontains constants representing the IDs of the various possible datanodes and node fields. If the scene loader (implemented in the CScene 36class) encounters an ID not existent in this class, the loader skips thenode or data field belonging to this node.

A MyPixelGrabber 51 class is used by the applet to load images to beused in the scene (shape textures, background images, etc.).MyPixelGrabber 51 is used in conjunction with classes implementing aMyImageObserver 52 interface. When an image finishes loading, theMyPixelGrabber 51 object calls back its observer object to notify theobject that the image is available. A practical example is provided inthe description of the MyImageObserver 52 class.

The MyImageObserver 52 class defines an interface for a function to becalled once an image has finished loading. Some classes implement theMyImageObserver 52 interface in order to be notified when an image theyrequested to load has finished loading. The actual loading of images bythe applet is done using the MyPixelGrabber 51 object. WhenMyPixelGrabber finishes loading an image, the image is passed to theMyImageObserver 52 object. An example of such a case is when the appletloads a new background image. The Applet3da 56 class calls a method in aYoe3d 53 class to set the new background image. The Yoe3d class, whichimplements the MyImageObserver interface, creates a MyPixelGrabberobject to load the image and, when done, to call a function in itsobserver, in this case Yoe3d. At this time, Yoe3d contains the loadedimage data and uses this data to set the applet's background.

The Yoe3d 53 class contains miscellaneous functions used for performing3D geometrical operations, image processing and blending operations,rasterization operations, and the like. For example, before a shaderclass can draw 2D polygons on screen, the shader class must convert the3D coordinates of each of its shape's polygons into 2D coordinate valuesusing a perspective projection algorithm. The function performing thistransformation is implemented in Yoe3d 53. This class also containsvariables used during the rasterization of the 3D scene. For instance,in order to display overlapping 3D objects correctly, the shader classperforms an algorithm called Z-Buffering while each 2D polygon is beingfilled into the bitmap image to be displayed. The Z-Buffering algorithmrequires a large memory buffer for filling the distance from theviewpoint information of each rendered pixel. This memory buffer residesin the Yoe3d 53 class. The applet contains one global Yoe3d 53 object,which resides in the Applet3da 56 object.

An I3daPainter 54 is the parent class of a SuperBase 55 class, which isthe parent of Applet3da 56 class. The I3daPainter 54 is a simpleinterface that contains no actual function for implementation. Otherclasses that implement the I3daPainter 54 inherit from differentclasses. This is also true for SuperBase 55, as SuperBase 55 inheritsfrom the Applet class, a standard JAVA library class available on anyJAVA-enabled system. The I3daPainter 54 contains an interface forhandling events in the scene. Such events include clicking on a shape ora toolbar button, for instance. These events can then be processedaccordingly. In the case of the Applet3da 56, these events are generatedby a call from an external JavaScript function written by the author ofthe HTML page hosting the applet.

The SuperBase 55 class inherits from the Applet class, a standard Javalibrary class available on any java enabled system, as described above.The basic functionality of this class is described below in the sectionon the Applet3d 56 class.

Next, the Applet3da 56 class will be described in greater detail.

The Applet3da 56 is the main applet class. It inherits from the JAVAApplet superclass. The Applet class provides a standard interfacebetween applets and their environment and is implemented as part of thestandard JAVA class library (available to every JAVA-enabled webbrowser). Every JAVA applet displayed on a web page must be a class thatinherits from the Applet class and implements its essential interface.This interface includes a way to draw on the applet area, a way tohandle client-user input (via mouse and keyboard events) to the applet,a way to export public functions implemented in the class so JavaScriptbeing executed by the browser can call these functions.

By sub-classing the Applet class we define a new kind of applet calledthe 3DA applet. The Applet3da 56 does not inherit directly from theApplet class, but instead inherits from the SuperBase 55 class, whichinherits from the Applet class.

Once the Applet3da class is loaded by the Web browser 2, the Web browser2 calls the standard Applet interface functions implemented by theApplet3da 56:

-   1. First an init function is called. This function initializes the    internal data of the Applet3da 56 and loads scene information into    the internal data structures of the Applet3da 56.-   2. Next, the browser calls a start function. This function prompts    the Applet3da 56 to handle events received by the applet, such as    mouse movement and keystrokes. The CController 59 object contained    in the Applet3da 56 processes these events. The Applet3da 56 enters    a loop in which it checks if there is a reason to render the 3D    scene (if something has changed since the last rendering). If so,    the scene is rendered. Then the Applet3da 56 calls the CController    59 class to update scene information based on received events,    changes resulting from API functions called by the browser,    executing animations, and object movement. This process is performed    in a loop until the applet is closed. This loop looks something like    the following:-   (a) Change since last frame?-   (b) Call controller to update scene information.-   (c) Perform 3D transformation of entire world in relation to current    viewpoint. (This is accomplished by accessing the CScene 36 object    stored in the Applet3da 56.)-   (d) Render the scene image. Loop back to (a).-   3. When closing the applet, the Web browser 2 calls the stop and    destroy functions of the Applet3da 56. These functions release scene    information created and stored in the Applet3da 56.

The web browser knows to execute the Applet3da 56 because this isspecified by the applet tag in the HTML file loaded by the browser. Asshown by 201-206 of FIG. 5, the applet tag looks something like thefollowing:

-   <applet    code=“Applet3da.class”codebase=“../”width=“360”height=“240”id=“Apple    t1”ARCHIVE=“3danywhere.zip”MAYSCRIPT>    -   <param name=“source”value=“example.3da”>-   </APPLET>

Notice that the “code” part of the applet tag specifies the Applet3da 56class file. This is the standard method for inserting applets into HTMLpages.

FIG. 6 shows parameters prepared for the applet tags 202-205 shown inFIG. 5. As shown in FIG. 6, these parameters include a Display 61related to such display parameters as background color, aspect, loadingmethods for textures and the like, antialiasing, and the like; a Mouseand User Interface 62 related to such operations as toolbar,mouse-operated camera control, rotational axis operations for 3Dobjects, coordinate movement, shapes, and the like; Default Selections63 for setting an initial state for camera motion speed, movementcoordinates, shape selection, 3D objects, and the like; andMiscellaneous parts for selecting event functions, enabling/disablingmouse events, and the like.

FIG. 7 is an explanatory drawing showing the JavaScript API (ApplicationProgramming Interface) functions included in the 3DA applet. FIG. 7 alsoshows the original parts interfacing with JavaScript for displayinginteractive 3D scenes described in an HTML page.

An example of the JavaScript code is shown in 301-305 of FIG. 5. In thisexample, an event occurs when the transform selected byMy3daEventFunction (itype, Param1, Param2) of 302 changes (whenitype=2).

As shown in FIG. 7, the JavaScript API includes Shape 71, ShapeProperties 72, Transform 73 (coordinate transformation), TransformProperties 74, Object 75, Camera 76, User Interface 77, Display 78,Animation 79, Miscellaneous 80, and the like. A description of eachfunction is as described above in relation to the 3DA applet and asdescribed below.

Next, JavaScript API will be described in more detail.

The Java Script API functions are all public functions implementedeither in the Applet3da 56 class or the SuperBase 55 class. Each 3DAapplet contains one instance of the Applet3da 56 class. This instance isthe main Applet class loaded and executed by the Web browser (the wayall JAVA applets are executed by a Web browser). Since there is noactual instance of the SuperBase 55 class and the Applet3da 56 inheritsthe SuperBase 55 class, it can be looked at as if all JavaScript APIfunctions are implemented in the Applet3da 56. The reason some APIfunctions are implemented in the Applet3da's super class (the SuperBase55 class) is related to code organization.

The API functions access members of the Applet3da function to performvarious operations in the applet. Some examples of this process aregiven below (not shown in the drawings).

-   -   1. A setBGColor( ) function accesses the “yoe3d.m_gbColor”        member of the SuperBase 55 class to set its value. This value is        used as the background color of the applet. The function        subsequently calls the RedrawAfterAct( ) method of the Applet3da        56 to repaint the applet.    -   2. A setPos( ) function is used to set the position of a        transform in the 3D scene. This operation is accomplished by        accessing the controller object, a member of the SuperBase 55        class, to check whether a specific 3D transform is currently        selected. Next, the function uses a method of the controller        class to convert the position passed to the function into the        coordinate system in which the selected transform resides.        Subsequently, the function sets the selected “translation”        member variable to the new position, and the RedrawAfterAct( )        method of the Applet3da 56 repaints the applet.

The above examples show that Applet3da 56 class contains member objectsthat manage different aspects of the applet. (The controller containsinformation about selected scene elements, while yoe3d 53 containsgeneral information, such as applet background color.). These objectsare accessed by different API functions, after which the applet scene isre-rendered to show the effects of this access. It is important tounderstand that these objects do not exist for the sole purpose of beingaccessed by API functions. These objects contain the scene informationand are used to render the scene. For instance, client-user interactionwith the applet triggers events. These events are also handled in theApplet3da 56 class, and these objects are accessed when the events areprocessed.

3D scene information extracted by the 3DA applet is configured like thefile contents shown in FIG. 8, including a Header 81, a Shape 82, aTransform 83, a Light 84, and a Camera 85. This information is stored ina single file as binary data. Each 3D scene information is identical tothat described above.

FIG. 9 shows the general configuration for managing licensinginformation. As shown in the first embodiment of FIG. 1, when theclient-user's Web browser downloads a 3DA applet and the like from theWeb server and displays 3D images, the applet serves to preventunauthorized use by displaying licensing information.

First, domain information, such as the domain www.XYZ.com is embedded inthe 3D applet's internal data when saving the 3D applet in S209 of FIG.2, as described in the second embodiment. This process corresponds toS300 in section (A) of FIG. 3. While the applet is saved to a localstorage device in the second embodiment, here the 3DA file is saved onthe Web server, in place of the saving process of S205 in FIG. 2.

Next, when displaying the 3D scene image on the Web browser, the processjumps to S301 in (B) of FIG. 3, in place of the processes S210 forloading the 3D applet and S211 for displaying the applet shown in FIG.2. The Web browser 2 downloads the 3DA applet and the like from the Webserver and executes the 3DA applet (S301). By executing the 3DA applet,the process related to the licensing information is also performed. Thisprocess is implemented in (A) by referencing the domain embedded in the3DA applet data and the actual domain (S302).

If both domains match, then the normal 3D display process is performedin place of displaying a license mark 110 (S303). However, if thedomains do not match, then the license mark 110 is displayed with awarning (S304). Upon checking the logo display, the client-user clickson the license mark 110 to access the homepage of the company managingthe license and obtain information on the procedure for acquiring alicense (S305).

More specifically, as shown in FIG. 9, the Web browser 2 (1) downloads3DA applet information from the Web server 6, (2) extracts the domainembedded in the 3DA applet information and the original domain of theactual download, and (3) compares the domains. When the domains aredifferent, the Web browser 2 displays the license mark 110 with in thedrawing area of the 3D scene with a warning.

The client-user of the Web browser 2 clicks on the license mark 110 tojump to the homepage of the company controlling the license and acquiresa license according to the displayed licensing acquisition method,procedures, and the like to display the 3DA scene. This process canprevent distributed 3DA applet information from being illegally copiedand placed on multiple domains.

Next, the Web-based 3D-image display system according to a thirdembodiment will be described with reference to FIG. 10.

FIG. 10 shows the Web-based 3D-image display system configured as abusiness model having the above-described functions and structure. Thesystem creates a database of 3DA files generated by the 3DA designerapplication and related developing tools, and other files containing 3DAinformation on a system center 1. The client-user downloads the 3DAinformation via the Web browser 2 from the Web server 6 of the systemcenter 1. The Web browser 2 displays an interactive 3D image.

The Web server 6, 3DA designer application, and Web browser 2 in thesystem center 1 are each installed and executed on a commercial personalcomputer or workstation comprising an ordinary computer system. Thepersonal computer or workstation is provided with a central processingunit (CPU); storage devices, such as RAM memory and a hard disk; adisplay device for displaying images, text, and the like; an inputdevice, such as a keyboard, mouse, or the like; input/output devicesconnected to a communication line; and the like. As these components arewell known in the art, a description of the components and drawingsshowing their construction have been omitted here.

Further, descriptions of processes already described above will not berepeated.

The system in FIG. 10 includes the system center 1, the Web browser 2(Client A), Internet 3, another client 4 (Client B), and an unspecifiednumber of clients 5 (clients n).

The system further comprises the Web server 6 in the system center 1 fordistributing 3DA files and the like to Clients A, B, . . . , n via theInternet 3; an FTP server 7 for managing file transfers and the like andused for accessing the system center from an external application,although a description of that application will not be included here; adatabase server 8 for controlling database accesses; and a licensinginformation adding function 9 for displaying licensing information basedon domain comparisons when displaying 3D images on the Web browser 2.

The system further comprises a 3D object creating function 10 forgenerating 3D objects by 3ds max and other 3D software; and a VRML filecreating function 11 for converting the 3D object file to the VRMLformat.

The system further comprises a 3DA customizing function 12 and a 3DAfile generating function 13 that use the 3DA designer application toextract scene information from the VRML file, add customizinginformation, and create and save a compressed 3DA file containing thenecessary scene information; and a 3DA applet generating function 14 forcreating a 3DA applet to display interactive 3DA images using the 3DAdesigner application. All applet classes necessary for displaying the 3Dscene are saved as a single compressed file.

The system further comprises an HTML file generating function 15 thatuses the 3DA designer application for automatically generating an HTMLfile for a Web page containing the applet tag, adding a JavaScript codeto the HTML file, performing the procedure for adding optional requests,and editing and generating the HTML file. Each of the functions 10 to 15saves each created or customized file in a 3D database 17 via a 3Dinformation saving function 16 and a database server 8. Various 3D dataincluding 3D parts, 3D image files and the like are stored in the 3Ddatabase 17.

Each Web browser contains functions for processing HTML, JAVA applets,and JavaScript. The Web browsers include a 3DA applet requestingfunction 21 for requesting to download 3DA applets from the Web server6; a 3DA file requesting function 22 executed by the downloaded 3DAapplet; a 3DA applet implementing function 23 for downloading 3DA filesto display a 3D image; an interactive display processing function 24enabling the Web browser itself to edit and operate the 3D displaywindow; and a licensing information processing function 25 forreferencing domains to perform processes related to licensinginformation.

As described above, the present invention enables an ordinary Webbrowser to display an interactive 3D scene, without the need of aspecial 3D-viewer plug-in, whereas existing 3D software, such as thatused to create VRML files, cannot display a 3D scene on an ordinarybrowser unless a special 3D-viewer plug-in is installed in the browser.

Further, the system of the present invention does not require abroadband communication line to transmit 3D images. 3D images can bequickly transmitted over an ordinary Internet communication (phone)line, because the size of the transmitted 3D files are reduced toapproximately 1/10 the size of an average animation file, thanks to the3DA file compression process. Accordingly, the images can be displayedsmoothly according to the 3DA applet method of displaying a 3D scene.

Further, once a 3DA file, a 3DA applet, and the optional items have beendownloaded to the Web browser 2, an interactive display can be achievedwithout the Web browser 2 being in communication with the Web server. Asa result, it is possible to display an interactive 3D scene more quicklythan the conventional method, wherein a server-side program performs theprocessing and editing of 3D scenes and the client-user's Web browser 2must issue a request to the server to process and edit the scene.

The present invention can also be used in e-commerce. For example, if acompany has an online catalog that includes a 3D image of a car, thatimage can be displayed on a client-user's browser. By using a mouse, theclient-user can freely rotate the body of the car in all directions toview the car from any perspective, for example, to see the underside ofthe car. Also by use of the mouse, the client-user can display theinside of the car, for example, in order to see the color and otheraspects in the appearance of the seats. The client-user is able to viewthe car's image as if the client-user were actually seeing a real car.If ordering a car online, the client-user can specify the color of thecar's body by painting the car a desired color and transmitting theimage to the automobile dealer. Similarly, when a real estate agentexhibits a 3D image of a model home via the Internet, the client-usercan freely move furniture in the room using the mouse and can specifythe wall colors of rooms when ordering a home by painting the walls adesired color, without having to go to the actual model room.

Furthermore, the present invention can be applied to the creation ofon-line games, as well as the display of all other types of 3D images.

As described above, a bi-directional Web-based 3D-image display systemaccording to the present invention displays 3D images on a Web browserby extracting 3D scenes from a standard Web-based 3D file, such as aVRML file created by one of various conventional 3D modeling softwareprograms. The system edits, processes, and compresses the 3D file andsaves the file on the Web server. By downloading a 3DA applet and thecompressed 3D file from the Web server, the client-user's Web browserdisplays the 3D scene on a JAVA VM (virtual machine). After downloadingand receiving all information, the Web browser can continuously displaysan interactive 3D scene independently of the Web server by executing the3D applet. Accordingly, the Web-based 3D-image display system of thepresent invention can display 3D scenes smoothly without requiring thata special 3D-viewer plug-in be installed in the Web browser and withoutrequiring a broadband communications line, and the Web browser canindependently edit and process the 3D scenes. Further, the presentinvention can inhibit unauthorized use of 3D images through the displayof licensing marks and the like.

1. A web-based 3D-image display system that downloads a 3D-image filefrom a Web server and displays a 3D image on a Web browser, theWeb-based 3D-image display system having: a Web server storingcompressed 3D files and a 3D applet, wherein the compressed 3D files areobtained through: editing 3D-scene information extracted from a Web 3Dfile described in a standard descriptive language for describingWeb-based 3D graphics, and creating 3D-scene information having aninterface with a 3D applet for displaying 3D scenes, and compressing theedited and created 3D scene information into a single file; and a 3Dapplet is obtained by selecting classes necessary for displaying the 3Dscenes from each of classes comprising a plurality of core classes—whichare used for displaying the 3D scenes by executing real-time3D-rendering and 3D- motion algorithms—and compressing them into asingle file; and a Web browser for displaying the 3D scenes bydownloading the compressed 3D-image file and the 3D applet fordisplaying the 3D scenes from the Web server; wherein the Web browsercomprises: 3D applet requesting means for requesting and downloading the3D applet from the Web server through communications with the Webserver; compressed 3D file requesting means for executing the 3D appletand requesting and downloading the compressed 3D file from the Webserver; optional information requesting means for requesting anddownloading optional information—including a scene's background image, ashape texture, and an applet toolbar which can select types of renderingfunctions with a toolbar button for rendering the 3D scenes by moving,rotating, enlarging and reducing an object—from the Web server; 3Dapplet executing means for the Web browser to execute the 3D appletindependently, not via the Web server, after completing the download andreceiving all necessary information; 3D scene displaying means for theWeb browser to continuously display 3D scenes by independentlyexecuting, not via the Web server, real-time 3D-rendering and 3D-motionalgorithms using the 3D applet executing means; and interactive displayprocessing means for enabling interactivity between the displayed 3Dscene and client users.
 2. A Web-based 3D-image display system thatloads a 3D-image file stored in a storage device and displays a 3D imageon a Web browser, the Web-based 3D-image display system comprising:Web-based 3D-file creating means for generating a 3D object by using a3D modeling software program and converting the generated 3D object oran entire 3D scene into a file format described in a standarddescriptive language for describing Web-based 3D graphics; 3D scenecustomizing means for customizing a 3D scene based on the Web-based 3Dfile created by the Web-based 3D file creating means and providinginformation regarding an interface with the 3D applet for displaying the3D scene on the Web browser; compressed 3D file generating means forcreating a single 3D compressed file by compressing the 3D-sceneinformation obtained by the 3D scene customizing means; 3D appletgenerating means for generating the 3D applet that is obtained byselecting classes necessary for displaying the 3D scenes from each ofclasses comprising a plurality of core classes—which are for displaying3D scenes by executing real-time 3D-rendering and 3D-motion algorithmson the Web browser based on 3D scene information in the compressed 3Dfile—and compressing them into a single file; applet toolbar generatingmeans for generating an applet toolbar that can select types of therendering functions by displaying—on a Web browser—a toolbar button,which is for rendering the 3D scenes by moving, rotating, enlarging andreducing an object; Web page creating means for creating a Web page ofan HTML document comprising an applet tag for calling the 3D applet andthe applet toolbar; 3D information storing means for storing in astorage device the compressed 3D file, the 3D applet, the Web page,texture files, and an optional toolbar file, which are required fordisplaying the 3D scenes; 3D applet executing means for requesting a 3Dapplet stored in the storage device, loading the 3D information filestored in the storage device, and executing the 3D applet, using the Webbrowser; and interactive display processing means for displaying auser-interactive 3D scene, which is interactive with users, by executingthe 3D applet and the applet toolbar.
 3. The Web-based 3D-image displaysystem as described in claim 1, wherein the interactive displayprocessing means enables the Web browser to edit and process a 3D sceneindependently of the Web server, not via the Web server, by transferringto the 3D applet and the applet toolbar client-user events input by aninput means for moving and changing a downloaded toolbar, and sceneobjects.
 4. The Web-based 3D-image display system as described in claim1, further comprising licensing information processing means forcomparing the domain of the Web server itself with domain data embeddedin the 3D applet when the Web browser downloads the 3D applet from theWeb server and displays a 3D scene.
 5. The Web-based 3D-image displaysystem as described in claim 4, wherein the licensing informationprocessing means compares the two domains and displays a license markand warning in the drawing area of the 3D scene when the domains do notmatch.
 6. The Web-based 3D-image display system as recited in claim 1,wherein the 3D applet comprises a plurality of applet classes includingat least scene element classes, which are at least one of shape,coordinate transform, light, and camera; shader classes, which are atleast one of wire frame, flat shading, and Gouraud shading; and aplurality of core classes for displaying 3D images; whereby the classesnecessary for displaying the 3D scene are selected and saved as a singlecompressed file.
 7. The Web-based 3D-image display system as recited inclaim 1, wherein the 3D applet comprises an original JavaScriptinterface capable of achieving user-interactivity through the JavaScriptcode on a Web page.
 8. The Web-based 3D-image display system as recitedin claim 7, wherein the JavaScript interface includes at leastinformation regarding objects, shapes, coordinates, cameras, animation,image displaying, and client-user interface in order to displayinteractive 3D images.
 9. The Web-based 3D-image display system asrecited in claim 1, wherein the compressed 3D file is stored in a singlebinary file and comprises 3D scene information called from an applet,including at least information regarding shapes, coordinate transform,lights, and cameras.
 10. The Web-based 3D-image display system asrecited in claim 1, wherein the standard descriptive language fordescribing Web-based 3D graphics is VRML.
 11. The Web-based 3D-imagedisplay system as recited in claim 2, wherein t the standard descriptivelanguage for describing Web-based 3D graphics is VRML.
 12. The Web-based3D-image display system as described in claim 2, wherein the interactivedisplay processing means can edit, process, and operate a 3D scene bytransferring user events, which are input using an input device forperforming operations such as movement and chance of loaded toolbar andscene objects, to the 3D applet and the applet toolbar and executingthem.
 13. The Web-based 3D-image display system as recited in claim 2,wherein the 3D applet comprises a plurality of applet classes, and theclasses necessary for displaying the 3D scene are selected from each ofclasses comprising at least scene element classes, which are at leastone of shape, coordinate transform, light, and camera; shader classes,which are at least one of wire frame, flat shading, and Gouraud shading;and a plurality of core classes for displaying 3D images, and saved as asingle compressed file.
 14. The Web-based 3D-image display system asrecited in claim 2, wherein the 3D applet comprises an originalJavaScript interface capable of achieving user-interactivity through theJavaScript code on a Web page.
 15. The Web-based 3D-image display systemas recited in claim 2, wherein the compressed 3D file is stored in asingle binary file and comprises 3D scene information called from anapplet, including at least information regarding shapes, coordinatetransform, lights, and cameras.